﻿using System;
using System.Drawing;

namespace HML
{
    /// <summary>
    /// TabItem自定义按钮绘制后事件参数
    /// </summary>
    public class TabItemCustomButtonDrawAfterEventArgs : EventArgs
    {
        private readonly TabPagePlus tabPage;
        /// <summary>
        /// 自定义按钮所属的TabPage
        /// </summary>
        public TabPagePlus TabPage
        {
            get { return this.tabPage; }
        }

        private readonly TabItemCustomButton customButton;
        /// <summary>
        /// 自定义按钮
        /// </summary>
        public TabItemCustomButton CustomButton
        {
            get { return this.customButton; }
        }

        private readonly float dpi;
        /// <summary>
        /// 系统缩放比例
        /// </summary>
        public float Dpi
        {
            get { return this.dpi; }
        }

        private readonly Graphics graphics;
        /// <summary>
        /// 封装一个GDI+绘图图面（ 当前 Clip=ItemClipBounds_C ）
        /// </summary>
        public Graphics Graphics
        {
            get { return this.graphics; }
        }

        private readonly RectangleF tabBarBounds_P;
        /// <summary>
        /// 导航栏区域 （包含:内边距、内容）
        /// </summary>
        public RectangleF TabBarBounds_P
        {
            get { return this.tabBarBounds_P; }
        }

        private readonly RectangleF tabBarBounds_C;
        /// <summary>
        /// 导航栏区域 （包含:内容）
        /// </summary>
        public RectangleF TabBarBounds_C
        {
            get { return this.tabBarBounds_C; }
        }

        private readonly RectangleF itemClipBounds_C;
        /// <summary>
        /// 当前选项剪辑区域 （包含:内容）
        /// </summary>
        public RectangleF ItemClipBounds_C
        {
            get { return this.itemClipBounds_C; }
        }

        private readonly RectangleF bounds_M;
        /// <summary>
        /// 自定义按钮区域（包含:外边距、内容）
        /// </summary>
        public RectangleF Bounds_M
        {
            get { return this.bounds_M; }
        }

        private readonly RectangleF bounds_C;
        /// <summary>
        /// 自定义按钮区域（只包含:内容）
        /// </summary>
        public RectangleF Bounds_C
        {
            get { return this.bounds_C; }
        }

        private readonly RectangleF clipBounds_C;
        /// <summary>
        /// 自定义按钮剪辑区域（只包含:内容）
        /// </summary>
        public RectangleF ClipBounds_C
        {
            get { return this.clipBounds_C; }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="tabPage">自定义按钮所属的TabPage</param>
        /// <param name="customButton">自定义按钮</param>
        /// <param name="dpi">系统缩放比例</param>
        /// <param name="graphics">封装一个GDI+绘图图面（ 当前 Clip=ClipBounds_P ）</param>
        /// <param name="tabBarBounds_P">导航栏区域 （包含:内边距、内容）</param>
        /// <param name="tabBarBounds_C">导航栏区域 （包含:内容）</param>
        /// <param name="itemClipBounds_C">当前选项剪辑区域 （包含:内容）</param>
        /// <param name="bounds_M">自定义按钮区域（包含:外边距、内容）</param>
        /// <param name="bounds_C">自定义按钮区域（只包含:内容）</param>
        /// <param name="clipBounds_C">自定义按钮剪辑区域（包含:内容）</param>
        public TabItemCustomButtonDrawAfterEventArgs(TabPagePlus tabPage, TabItemCustomButton customButton, float dpi, Graphics graphics, RectangleF tabBarBounds_P, RectangleF tabBarBounds_C, RectangleF itemClipBounds_C, RectangleF bounds_M, RectangleF bounds_C, RectangleF clipBounds_C)
        {
            this.tabPage = tabPage;
            this.customButton = customButton;
            this.dpi = dpi;
            this.graphics = graphics;
            this.tabBarBounds_P = tabBarBounds_P;
            this.tabBarBounds_C = tabBarBounds_C;
            this.itemClipBounds_C = itemClipBounds_C;
            this.bounds_M = bounds_M;
            this.bounds_C = bounds_C;
            this.clipBounds_C = clipBounds_C;
        }

    }

}
